/*
 * 文 件 名:  RoleServiceImpl.java
 * 版    权:  Ysten Technologies Co., Ltd. Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  <描述>
 * 修 改 人:  bo.chen
 * 修改时间:  2015年1月23日
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package lv.pig.base.jpa.service.impl;

import java.util.List;
import java.util.Map;

import lv.pig.base.jpa.dao.RoleDao;
import lv.pig.base.jpa.entity.SystemRole;
import lv.pig.base.jpa.service.RoleService;
import lv.pig.base.utils.CommonUtils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;

/**
 * <一句话功能简述> <功能详细描述>
 * 
 * @author bo.chen
 * @version [版本号, 2015年1月23日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Service("roleService")
public class RoleServiceImpl implements RoleService
{
    @Autowired
    RoleDao roleDao;
    
    /**
     * @param entity
     * @return
     */
    
    @Override
    public SystemRole save(SystemRole entity)
    {
        return roleDao.save(entity);
    }
    
    /**
     * @param roleId
     * @return
     */
    @Override
    public SystemRole findById(Long roleId)
    {
        
        return roleDao.findOne(roleId);
    }
    
    /**
     * @param param
     * @return
     */
    @Override
    public List<SystemRole> findAll(Map<String, Object> param)
    {
        Specification<SystemRole> spec = CommonUtils.buildSpecification(param, SystemRole.class);
        return roleDao.findAll(spec);
    }
    
    /**
     * @param userId
     * @return
     */
    @Override
    public List<SystemRole> findByUserId(Long userId)
    {
        return roleDao.findByUser(userId);
    }
    
    /**
     * @param param
     * @param sorts
     * @param page
     * @return
     */
    @Override
    public Page<SystemRole> findAll(Map<String, Object> param, Pageable page)
    {
        Specification<SystemRole> spec = CommonUtils.buildSpecification(param, SystemRole.class);
        return roleDao.findAll(spec, page);
    }
    
}
